package com.shujia.day02;

public class Demo10ContinueFor {
    public static void main(String[] args) {
        /*
            TODO 循环结构：
                对于多次执行的代码，需要使用循环结构进行处理
                组成：
                    1.初始化语句 对于循环中所使用的一些变量 进行定义，该语句只会被执行一次
                    2.判断条件语句： 根据条件判断是否可以进入循环
                    3.循环体语句： 这个部分是循环体语句，也就是我们要多次做的事情
                    4.控制条件语句： 对当前循环的变量进行控制，该变量一般会出现再判断语句中

            TODO for循环
                格式：
                    for(初始化语句;判断条件语句;控制条件语句){
                        循环体语句
                    }
                执行流程：
                    初始化语句 -> 判断条件语句 -(true)-> 循环体语句 -> 控制条件语句
                                           -(false)-> 退出循环
                注意：
                    1.初始化语句中定义的变量，只能再当前for循环中生效，在for循环外不能使用，同时不同for循环间可以定义相同的
                        变量名

         */
        System.out.println("hello world!!!");
        System.out.println("hello world!!!");
        System.out.println("hello world!!!");
        System.out.println("hello world!!!");
        System.out.println("hello world!!!");
        System.out.println("hello world!!!");

        System.out.println("=================分割线=================");
        //
//        for (int num = 0; num < 10; num += 1) {
//            System.out.println("hello world!!!");
//        }
        /*
            对for循环语句进行变更
                1.初始化语句可以定义再for循环之外
                2.对于控制语句可以再 循环体中
         */
        int num = 0;
        for (; num < 10; ) {
            System.out.println("hello world!!!");
            num += 1;
        }


        // 请在控制台输出数据1-10
//        int outData = 1;
//        for (int i = 0; i < 10; i++) {
//            System.out.println("num:"+outData);
//            outData += 1;
//        }
        // 优化写法 尽可能使用更少的变量来完成 但是也要保证逻辑的清晰
//        for (int i = 1; i <= 10; i++) {
//            System.out.println("num:"+i);
//        }

        //请在控制台输出数据10-1
        for (int i = 10; i > 0; i--) {
            System.out.println("num:" + i);
        }

        // 求出1-100之间奇数和
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            // 判断i是否为奇数
            if (i % 2 == 1) {
                System.out.println(i + "是奇数");
                sum += i;
            }
        }
        System.out.println("1-100之间奇数和:" + sum);

        // 求5的阶乘

        /*
            所谓的水仙花数是指一个三位数，其各位数字的立方和等于该数本身。
            举例：153就是一个水仙花数。
            153 = 1*1*1 + 5*5*5 + 3*3*3

            三位数 100 ~ 999
         */
//        int aa =1;
//        int aa =2;

        int count = 0;
        for (int i = 100; i <= 999; i++) {
            int a = i / 100; // a是百位
            int b = (i - (a * 100)) / 10; // b是十位
            int c = i % 10; // c是个位
            if (i == (a * a * a + b * b * b + c * c * c)){
                System.out.println(i+"是一个水仙花数");
                count += 1;
            }
        }
        System.out.println("百位数中水仙花共有"+count+"个");

        /*
            请在控制台输出满足如下条件的五位数
                个位等于万位
                十位等于千位
                个位+十位+千位+万位=百位
            请统计1-1000之间同时满足如下条件的数据有多少个：
                对3整除余2
                对5整除余3
                对7整除余2

            打印99乘法表
         */
        System.out.println("这是一行数据");
        System.out.println("这是一行数据");

        System.out.print("这是一个数据\t");
        System.out.print("这是一个数据\t");



    }
}
